home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / OHMSLAW.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1995-11-01  |  3.6 KB  |  176 lines

  1. 10  'OHMSLAW - 1983 - rev. 01 NOV 95
  2. 20  IF EX$=""THEN EX$="EXIT"
  3. 30  CLS:KEY OFF
  4. 40  COLOR 7,0,1
  5. 50  DIM B$(3),C$(9),V$(25),R$(8)
  6. 60  O$="#####,###
  7. 70  U$="####,###.###"
  8. 80  L$=STRING$(42,205)
  9. 90  UL$=STRING$(80,205)
  10. 100  DATA 1st,2nd,3rd
  11. 110  FOR Z=1 TO 3
  12. 120  READ B$(Z)
  13. 130  NEXT Z
  14. 140  DATA BLACK,BROWN,RED,ORANGE,YELLOW,GREEN,BLUE,VIOLET,GREY,WHITE
  15. 150  FOR Z=0 TO 9
  16. 160  READ C$(Z)
  17. 170  NEXT Z
  18. 180  DATA 10,11,12,13,15,16,18,20,22,24,27,30,33
  19. 190  DATA 36,39,43,47,51,56,62,68,75,82,91,100
  20. 200  FOR Z=1 TO 25
  21. 210  READ V$(Z)
  22. 220  NEXT Z
  23. 230  '
  24. 240  '.....start
  25. 250  CLS:E=0:I=0:R=0:P=0
  26. 260  COLOR 15,2
  27. 270  PRINT " OHM'S LAW";TAB(57);"by George Murphy VE3ERP ";
  28. 280  COLOR 1,0:PRINT STRING$(80,223);
  29. 290  COLOR 7,0
  30. 300  PRINT " Press number in < > for:"
  31. 310  PRINT UL$;
  32. 320  PRINT "  < 1 >  Ohm's Law"
  33. 330  PRINT "  < 2 >  Resistor Colour Codes"
  34. 340  PRINT UL$;
  35. 350  PRINT "  < 0 >  EXIT"
  36. 360  Z$=INKEY$
  37. 370  IF Z$="1"THEN 420
  38. 380  IF Z$="2"THEN CLS:GOTO 1340
  39. 390  IF Z$="0"THEN CLS:RUN EX$
  40. 400  GOTO 360
  41. 410  '
  42. 420  '.....OHM's LAW
  43. 430  CLS
  44. 440  PRINT " ( Press <ENTER> if factor is unknown )
  45. 450  PRINT L$
  46. 460  IF E=0 THEN INPUT " ENTER: Volts .....";E:GOSUB 520
  47. 470  IF I=0 THEN INPUT " ENTER: Amps ......";I:GOSUB 520
  48. 480  IF R=0 THEN INPUT " ENTER: Ohms ......";R:GOSUB 520
  49. 490  IF P=0 THEN INPUT " ENTER: Watts .....";P:GOSUB 520
  50. 500  CLS:GOTO 420
  51. 510  '
  52. 520  '.....CHECK IF SUFFICIENT PARAMETERS
  53. 530  IF E*I THEN R=E/I:P=I*E:GOTO 610
  54. 540  IF E*R THEN I=E/R:P=E^2/R:GOTO 610
  55. 550  IF I*R THEN E=I*R:P=I^2*R:GOTO 610
  56. 560  IF P*E THEN I=P/E:R=E^2/P:GOTO 610
  57. 570  IF P*I THEN E=P/I:R=P/I^2:GOTO 610
  58. 580  IF P*R THEN E=SQR(P*R):I=SQR(P/R):GOTO 610
  59. 590  RETURN
  60. 600  '
  61. 610  '.....CALCULATE OTHER FACTORS
  62. 620  CLS
  63. 630  EE=E:E$=" volts"
  64. 640  II=I:I$=" amps"
  65. 650  RR=R:R$=" ohms"
  66. 660  PP=P:P$=" watts"
  67. 670  IF E>=10^3 THEN EE=E/10^3:E$=" KV."
  68. 680  IF I>=10^4 THEN II=I/10^4:I$=" K.amp."
  69. 690  IF I<1 THEN II=I*10^3:I$=" mA."
  70. 700  IF R>=10^4 THEN RR=R/10^4:R$=" K.ohm"
  71. 710  IF R>=10^6 THEN RR=R/10^6:R$=" Megohm"
  72. 720  IF P>=10^3 THEN PP=P/10^3:P$=" Kw."
  73. 730  PRINT L$
  74. 740  PRINT " E=";USING U$;EE;
  75. 750  PRINT E$
  76. 760  PRINT " I=";USING U$;II;
  77. 770  PRINT I$
  78. 780  PRINT " R=";USING U$;RR;
  79. 790  PRINT R$
  80. 800  PRINT " P=";USING U$;PP;
  81. 810  PRINT P$
  82. 820  R$=STR$(INT(R)):N$=LEFT$(R$,3):L=LEN(R$)-3:M=10^L
  83. 830  Y$=""
  84. 840  IF R<10 OR R>2.2*1E+06 THEN 1210
  85. 850  PRINT L$
  86. 860  PRINT " Nearest standard small resistors:"
  87. 870  '
  88. 880  FOR Y=1 TO 25
  89. 890  IF VAL(V$(Y))>VAL(N$)THEN 920
  90. 900  NEXT Y
  91. 910  '
  92. 920  R$(1)=V$(Y-1):R(1)=VAL(R$(1))*M:R$=STR$(R(1)):N=0
  93. 930  FOR Z=4 TO LEN (R$)
  94. 940  IF MID$(R$,Z,1)="0"THEN N=N+1
  95. 950  NEXT Z
  96. 960  R$(7)=C$(N)
  97. 970  '
  98. 980  R$(2)=V$(Y):R(2)=VAL(R$(2))*M:R$=STR$(R(2)):N=0
  99. 990  FOR Z=4 TO LEN (R$)
  100. 1000  IF MID$(R$,Z,1)="0"THEN N=N+1
  101. 1010  NEXT Z
  102. 1020  R$(8)=C$(N)
  103. 1030  '
  104. 1040  FOR Z=0 TO 9
  105. 1050  IF VAL(LEFT$(R$(1),1))=Z THEN R$(3)=C$(Z)
  106. 1060  IF VAL(LEFT$(R$(2),1))=Z THEN R$(4)=C$(Z)
  107. 1070  IF VAL(RIGHT$(R$(1),1))=Z THEN R$(5)=C$(Z)
  108. 1080  IF VAL(RIGHT$(R$(2),1))=Z THEN R$(6)=C$(Z)
  109. 1090  NEXT Z
  110. 1100  FOR Z=1 TO 2
  111. 1110  PRINT USING O$;R(Z);
  112. 1120  PRINT " ohms";
  113. 1130  PRINT "  ( ";
  114. 1140  PRINT R$(Z+2);
  115. 1150  PRINT " ";
  116. 1160  PRINT R$(Z+4);
  117. 1170  PRINT " ";
  118. 1180  PRINT R$(Z+6);
  119. 1190  PRINT " )"
  120. 1200  NEXT Z
  121. 1210  Z$=""
  122. 1220  PRINT L$
  123. 1230  PRINT " Press E,I,R or P to retain for another "
  124. 1240  PRINT " calculation or press Z to return to MENU
  125. 1250  PRINT L$
  126. 1260  Z$=INKEY$
  127. 1270  IF Z$="E" OR Z$="e" THEN I=0:R=0:P=0:GOTO 420
  128. 1280  IF Z$="I" OR Z$="i" THEN E=0:R=0:P=0:GOTO 420
  129. 1290  IF Z$="R" OR Z$="r" THEN E=0:I=0:P=0:GOTO 420
  130. 1300  IF Z$="P" OR Z$="p" THEN E=0:I=0:R=0:GOTO 420
  131. 1310  IF Z$="Z" OR Z$="z" THEN 240   'start
  132. 1320  GOTO 1260
  133. 1330  '
  134. 1340  '.....COLOR CODE
  135. 1350  R$=""
  136. 1360  A$=""
  137. 1370  FOR Z=0 TO 9
  138. 1380  PRINT " (";Z;") "C$(Z)
  139. 1390  NEXT Z
  140. 1400  PRINT L$
  141. 1410  R=0
  142. 1420  FOR Z=1 TO 3
  143. 1430  PRINT " Press number in ( ) for color of ";B$(Z);" ring  ";
  144. 1440  Z$=INKEY$
  145. 1450  IF Z$=""THEN 1440
  146. 1460  X=VAL (Z$)
  147. 1470  IF Z=1 OR Z=2 THEN R=R*10+X
  148. 1480  IF Z=3 THEN R=R*10^X
  149. 1490  PRINT TAB(38);C$(X)
  150. 1500  A$=A$+C$(X)+" "
  151. 1510  NEXT Z
  152. 1520  CLS
  153. 1530  Z=R
  154. 1540  Z$=" ohms"
  155. 1550  O$="####,###"
  156. 1560  IF Z>10^6 THEN Z=Z/10^6:Z$=" megohms":O$="##,###.#"
  157. 1570  PRINT UL$;
  158. 1580  PRINT " ";A$
  159. 1590  PRINT
  160. 1600  PRINT " Resistance =";
  161. 1610  COLOR 15,6
  162. 1620  PRINT USING O$;Z;
  163. 1630  COLOR 7,0
  164. 1640  PRINT Z$
  165. 1650  PRINT UL$;
  166. 1660  PRINT
  167. 1670  PRINT " Press number in < > to:
  168. 1680  PRINT L$
  169. 1690  PRINT "  < 1 >  Do another"
  170. 1700  PRINT "  < 0 >  Return to menu"
  171. 1710  PRINT L$
  172. 1720  Z$=INKEY$
  173. 1730  IF Z$="1"THEN CLS:GOTO 1340
  174. 1740  IF Z$="0"THEN 240   'start
  175. 1750  GOTO 1720
  176.